package com.atguigu.controller;

import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;

/**
 * @author 伟哥
 * @date 2021-06-01 19:54
 */
public class MyLocaleResolver implements LocaleResolver {
    /**
     * 解析Locale区域信息
     * @param request
     * @return
     */
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        // 如果请求，带了区域信息"?locale=zh_CN"就使用，请求携带的区域信息
        String localeStr = request.getParameter("locale");
        if(localeStr!=null && "".equals(localeStr)){
            // new 一个区域信息，返回给SpringMVC使用
            return new Locale(localeStr.split("_")[0],localeStr.split("_")[1]);
        } else{
            // 请求没带指定的信息，则使用，浏览器默认的区域信息
            return request.getLocale();
        }
    }

    /**
     * 修改Locale区域信息
     * @param request
     * @param response
     * @param locale
     */
    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
        throw new UnsupportedOperationException("不支持修改区域信息！");
    }
}
